package com.code.array_strings;

/**
 * 80. 删除有序数组中的重复项 II
 *
 * 给你一个有序数组 nums ，
 * 请你 原地 删除重复出现的元素，
 * 使得出现次数超过两次的元素只出现两次 ，
 * 返回删除后数组的新长度。
 *
 * 不要使用额外的数组空间，你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。
 */
class Solution_80 {
    public int removeDuplicates(int[] nums) {
        int i = 0;
        // for循环默认只执行一条语句。如果没有大括号{}包围多条语句，那么只有紧跟在for关键字后面的那条语句会被视为循环体的一部分。
        for (int n : nums)
            if (i < 2 || n > nums[i-2])
                nums[i++] = n;
        return i;
    }
}